The present invention relates to methods and apparatus for querying large numbers of devices using a network. More specifically, the present invention relates to efficiently and scaleably issuing queries to devices from a monitor and collecting results of those queries.
Connecting large numbers of devices to a network is known. Perhaps the most referenced network, and possibly the most used, is the global internetwork of networks known as the xe2x80x9cInternetxe2x80x9d. With the Internet and other networks, a network manager of all or part of the network often needs to query devices at many nodes of the network. In the Internet field, a protocol known as SNMP (Simple Network Management Protocol) has been in wide use for querying devices for status and collecting responses. Some details of SNMP are set forth in Request for Comments (RFC) 1156 (May 1990) and RFC 1157 (May 1990). RFC""s form the basis for many standards used in connection with the Internet and are widely available.
Using SNMP, a network monitor would send queries out to devices that are responsive to SNMP and the devices would respond to the queries back to the network monitor. The network monitor is coupled to the network at a network node and the devices are coupled to the network as well. SNMP might work well with one network monitor querying dozens, hundreds or even thousands of devices, but becomes problematic with greater numbers of devices. One problem is that the network around the network node gets congested as the network monitor attempts to send SNMP query request packets to each device. Even if the query request could be broadcast to the devices, using multicasting or other techniques, the returning query responses would bog down the network near the network node. Such congestion would occur with only one response per device, so the congestion could be expected to be much worse if each device sends more than one response per query, as might be the case for a query that requests periodic updates from a device.
Often, a network comprises many networked devices. Operating such a network is typically a critical yet complex task requiring refined mechanisms for configuring, managing, debugging, monitoring, and measuring equipment and equipment performance. While protocols and tools for managing individual pieces of equipment within a network are well understood, systems for managing or monitoring an ensemble of equipment across a network are poorly understood and underdeveloped.
This problem becomes even more acute in the context of an emerging network abstraction called a Content Distribution Network (CDN). Examples of CDNs are described in McCanne III. A CDN routes xe2x80x9ccontentxe2x80x9d, as opposed to a lower level router that merely routes individual packets. The content routed by a CDN might be a set of media streams and the content flows across the CDN to xe2x80x9cedge devicesxe2x80x9d, which might be clients for viewing or storing the content or servers that forward on the content to such clients. CDNs may function in such a way that the content is distributed to interested edge devices without requiring a centralized control point in the network that knows the exact details of which devices are receiving the content or how it is being distributed (for example, which network paths is the content flowing across). Unfortunately, management and monitoring tools often need access to this very information in order to perform their functions.
One embodiment of the present invention provides for an improved query handling system. The network transports query messages from query nodes to device nodes. Query responses from the device node are directed through the network to a collection node or nodes. The device nodes might be supported by servers that are located in the network near the network devices. Such servers would maintain information about their network devices, such as information about the data streams being served to the network devices. When an internal response network node receives multiple query responses from device nodes, the internal response network node might aggregate, as needed, the multiple query responses into an aggregated query response. Preferably, an aggregated query response occupies less bandwidth than the aggregated multiple query responses.
Where the result desired at the collection node is a computed function of the multiple query responses, such as a concatenation, sum, logical function, summary, etc., the computed function can be performed at each internal response network node on the multiple query responses received at that node, thus distributing the computation needed to form a collected response to the query.
In particular embodiments, queries might request real-time or non-real-time responses and queries might request one response, periodic responses or one response for each occurrence of an event. The internal response network nodes might store lookup tables, or access a centralized lookup table, that specify details of queries, thus obviating the need for each query message to carry all of the necessary details of the query. In a specific embodiment, query messages from a query originator to a network device identify the query being made by an index into a query lookup table. The lookup table might also include details or instructions usable by the internal response network nodes for performing an aggregation specific to the query.
A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings.